#ifndef COFFEE_MACHINE
#define COFFEE_MACHINE

#include "container.hpp"
#include "cup.hpp"
class CoffeMachine
{
private:
	Container m_waterContainer;
	Container m_milkContainer;
	Container m_beansContainer;
	Container m_cupContainer;
	Container m_cashContainer;
	struct Recipe
	{
		std::string m_name;
		int m_cost;
		int m_water;
		int m_milk;
		int m_beans;
		int m_cup;
	};
	struct Status
	{
		const int m_water;
		const int m_milk;
		const int m_beans;
		const int m_cups;
		const int m_cash;
	};
	Recipe m_recipes[3]
	{
		Recipe{"Эспрессо", 4, 250, 0, 16, 1},
		Recipe{"Латте", 7, 350, 75, 20, 1},
		Recipe{"Капучино", 6, 200, 100, 12, 1},
		
	};
public:
	CoffeMachine();
	~CoffeMachine();
	enum class CoffeeType
	{
		esspresso,
		latte,
		capuchino
	};	
	friend std::ostream& operator<<(std::ostream &out, const CoffeMachine::Status &status);
	Cup* orderCoffee(CoffeeType coffeeType, int& cashback);
	Status getStatus();

};

#endif